/**
 * Classe abstrata que define o tipo Estado.
 * � definido os seguintes Objetos como atributos do Estado:
 * est_mostrador, est_editor, est_console, est_alerta, est_ga * 
 * @author Renan Leandro Ferreira
 */
package tirateima.controlador;


import tirateima.gui.arquivos.EstadoGA;



public class Estado {
	
	
	public Object est_passo;
	public Object est_mostrador;
	public Object est_editor;
	public Object est_console;
	public Object est_alerta;
	public Object est_ga;
	public Object est_label;
	public Object est_jump; 
	public Object est_jumpTo;
	public Object est_horizontalDivision;
	public Object est_verticalDivision;
	
	
	@Override
	protected Estado clone() throws CloneNotSupportedException {
		
		Estado e = new Estado();
		e.est_passo = est_passo;
		e.est_mostrador = est_mostrador;
		e.est_editor = est_editor;
		e.est_console = est_console;
		e.est_alerta = est_alerta;
		if (est_ga != null)
			e.est_ga = new EstadoGA(((EstadoGA)est_ga).arquivos, ((EstadoGA)est_ga).arq_atual);
		else
			e.est_ga = null;
		e.est_label = est_label;
		e.est_jump = est_jump; 
		e.est_jumpTo = est_jumpTo;
		e.est_horizontalDivision = new Float[]{((Float[])est_horizontalDivision)[0], ((Float[])est_horizontalDivision)[1], ((Float[])est_horizontalDivision)[2], ((Float[])est_horizontalDivision)[3]};
		e.est_verticalDivision = new Float[]{((Float[])est_verticalDivision)[0], ((Float[])est_verticalDivision)[1]};;
		return e;
	}
}

